﻿//*****************************************************************************
//** Project:PatternWell.PAC
//** Copyright 2011 PatternWell LLC
//** Revision History:
//** Version 1.0 - Initial Release
//*****************************************************************************
using System;
using System.ComponentModel;

namespace PatternWell.PAC
{
    /// <summary>
    /// Base interface that must be implemented by all pac contracts. 
    /// </summary>
    public interface IPacContract:INotifyPropertyChanged,IDisposable,IResource
    {
        /// <summary>
        /// Helper method that will call the initialization logic used by the PAC.
        /// </summary>
        /// <remarks>
        /// This helper method is to be implemented as virtual so you can override and provide custom initialization for the controller as you see fit.
        /// </remarks>
        void InitializePac();

        /// <summary>
        /// The unique identifier assigned to the PAC
        /// </summary>
        Guid PACId { get; }
    }
}
